package com.turnengine.client.local.unit.command;

import com.javabi.codebuilder.generated.IGeneratedCommand;
import com.turnengine.client.local.command.IStaticSetupCommand;
import com.turnengine.client.local.unit.bean.IUnit;
import com.turnengine.client.local.unit.enums.UnitMove;
import com.turnengine.client.local.unit.enums.UnitNode;
import com.turnengine.client.local.unit.enums.UnitType;

/**
 * The I Add Unit.
 */
public interface IAddUnit extends IGeneratedCommand, IStaticSetupCommand<IUnit>, Comparable<IAddUnit> {

	/**
	 * Returns the login id.
	 * @return the login id.
	 */
	long getLoginId();

	/**
	 * Returns the instance id.
	 * @return the instance id.
	 */
	int getInstanceId();

	/**
	 * Returns the name.
	 * @return the name.
	 */
	String getName();

	/**
	 * Returns the node.
	 * @return the node.
	 */
	UnitNode getNode();

	/**
	 * Returns the type.
	 * @return the type.
	 */
	UnitType getType();

	/**
	 * Returns the move.
	 * @return the move.
	 */
	UnitMove getMove();

	/**
	 * Returns the group name.
	 * @return the group name.
	 */
	String getGroupName();

	/**
	 * Returns the faction name.
	 * @return the faction name.
	 */
	String getFactionName();

	/**
	 * Sets the login id.
	 * @param loginId the login id to set.
	 */
	void setLoginId(long loginId);

	/**
	 * Sets the instance id.
	 * @param instanceId the instance id to set.
	 */
	void setInstanceId(int instanceId);

	/**
	 * Sets the name.
	 * @param name the name to set.
	 */
	void setName(String name);

	/**
	 * Sets the node.
	 * @param node the node to set.
	 */
	void setNode(UnitNode node);

	/**
	 * Sets the type.
	 * @param type the type to set.
	 */
	void setType(UnitType type);

	/**
	 * Sets the move.
	 * @param move the move to set.
	 */
	void setMove(UnitMove move);

	/**
	 * Sets the group name.
	 * @param groupName the group name to set.
	 */
	void setGroupName(String groupName);

	/**
	 * Sets the faction name.
	 * @param factionName the faction name to set.
	 */
	void setFactionName(String factionName);
}
